add pulse wave signal source functions to the signal module#151
Open
ifacodes wants to merge 5 commits intoRustAudio:masterfrom
Open
add pulse wave signal source functions to the signal module#151ifacodes wants to merge 5 commits intoRustAudio:masterfrom
ifacodes wants to merge 5 commits intoRustAudio:masterfrom
Conversation
I added three pulse wave source functions to the dasp::signal module, that I felt would be useful. I chose to add a selection 12.5%, 25%, and 75% duty cycle pulse waves. My reasoning for this was due to those 3, (plus 50%, as standard Square Wave) being the most common in chiptune, and old gaming APU's. Initially I tried extending the signal module in my own project, but came across some difficulty trying to implement it as a trait.
Author
|
turns out VS Code can be really finicky when mass changing the name of things :/ |
Contributor
|
What about making the duty cycle a parameter? Seems unnecessarily restrictive to have multiple implementations with fixed values. |
Member
|
Thanks for the PR @ifamakes! I'm also thinking a single type with a #[derive(Clone)]
pub struct Pulse<S> {
phase: Phase<S>,
duty_cycle: S,
}and then have the implementation could look something like: if phase < self.duty_cycle {
1.0
} else {
-1.0
}What are your thoughts? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I added three pulse wave source functions to the dasp::signal module, that I felt would be useful.
I chose to add a selection 12.5%, 25%, and 75% duty cycle pulse waves.
My reasoning for this was due to those 3, (plus 50%, as standard Square Wave) being the most common in chiptune, and old gaming APU's.
Initially I tried extending the signal module in my own project, but came across some difficulty trying to implement it as a trait.